/**
 * @description 约定大于配置，在该项目中所有的路由配置都应该是自动化完成
 * 在取得路由index.ts 上级的的同级目录下的所有文件index.vue和index-route.js 都是固定格式，
 * 当然在不同的企业/单位/公司 所约定的也不一样 ，所以在开发的时候必须 要约定好路由的格式，才能在写代码的时候不会出现问题
 *@author sqwen
 *@return router
 */
import {createRouter, createWebHistory} from 'vue-router'

/**
 * @description 工程化 读取编译时的文件对象与路径，工程化不明白可以上网查
 * @author sqwen
 * @return pages
 */
const pages = import.meta.glob('../pages/**/index-route.js',{
    eager:true,
    import:'default'
});
/**
 * @description 工程化 读取编译时的文件对象与路径，工程化不明白可以上网查
 * @author sqwen
 * @return comps
 */
const comps = import.meta.glob('../pages/**/index.vue');
/**
 * @description 工程化 读取编译时的文件对象与路径，工程化不明白可以上网查
 * @author sqwen
 * @return routes
 */
const routes = Object.entries(pages).map(([path,meta]) =>{
    const  compPath:string = path.replace('index-route.js','index.vue')
    path = path.replace('../pages','').replace('/index-route.js','')|| '/'
    if(path === '/index'){
        path = '/'
    }
    const name = path.split('/').filter(Boolean).join('-')|| 'index'
    return {
        path,
        name,
        component: comps[compPath],
        meta
    }
});
const router = createRouter({
    history:createWebHistory(),
    routes,
    strict: true
})
export {router}